package G.二叉搜索树;

public class _700_二叉搜索树中的搜索 {
    /**
     * 自解：递归
     * @param root
     * @param val
     * @return
     */
    public TreeNode searchBST(TreeNode root, int val) {
        if (root == null){
            return null;
        }

        if (root.val == val){
            return root;
        }



        if (root.val > val){
            root = searchBST(root.left,val);
        }else if (root.val < val){
            root = searchBST(root.right,val);
        }



        return root;

    }

    /**
     * 递归法的栈占据空间
     *
     * 迭代法 不停迭代更新root
     */
    public TreeNode searchBST1(TreeNode root, int val) {

        while (root != null && root.val != val){
            root = root.val<val?root.right:root.left;
        }

        return root;
    }


}
